/** layui-v2.4.5 MIT License By https://www.layui.com */
layui.define("jquery", function (e) {
    "use strict";
    var a = layui.jquery,
        i = {
            config: {},
            index: layui.rate ? layui.rate.index + 1e4 : 0,
            set: function (e) {
                var i = this;
                return (i.config = a.extend({}, i.config, e)), i;
            },
            on: function (e, a) {
                return layui.onevent.call(this, n, e, a);
            },
        },
        l = function () {
            var e = this,
                a = e.config;
            return {
                setvalue: function (a) {
                    e.setvalue.call(e, a);
                },
                config: a,
            };
        },
        n = "rate",
        t = "layui-rate",
        o = "layui-icon-rate",
        s = "layui-icon-rate-solid",
        u = "layui-icon-rate-half",
        r = "layui-icon-rate-solid layui-icon-rate-half",
        c = "layui-icon-rate-solid layui-icon-rate",
        f = "layui-icon-rate layui-icon-rate-half",
        v = function (e) {
            var l = this;
            (l.index = ++i.index), (l.config = a.extend({}, l.config, i.config, e)), l.render();
        };
    (v.prototype.config = { length: 5, text: !1, readonly: !1, half: !1, value: 0, theme: "" }),
        (v.prototype.render = function () {
            var e = this,
                i = e.config,
                l = i.theme ? 'style="color: ' + i.theme + ';"' : "";
            (i.elem = a(i.elem)), parseInt(i.value) !== i.value && (i.half || (i.value = Math.ceil(i.value) - i.value < 0.5 ? Math.ceil(i.value) : Math.floor(i.value)));
            for (var n = '<ul class="layui-rate" ' + (i.readonly ? "readonly" : "") + ">", u = 1; u <= i.length; u++) {
                var r = '<li class="layui-inline"><i class="layui-icon ' + (u > Math.floor(i.value) ? o : s) + '" ' + l + "></i></li>";
                i.half && parseInt(i.value) !== i.value && u == Math.ceil(i.value) ? (n = n + '<li><i class="layui-icon layui-icon-rate-half" ' + l + "></i></li>") : (n += r);
            }
            n += "</ul>" + (i.text ? '<span class="layui-inline">' + i.value + "星" : "") + "</span>";
            var c = i.elem,
                f = c.next("." + t);
            f[0] && f.remove(),
                (e.elemTemp = a(n)),
                (i.span = e.elemTemp.next("span")),
                i.setText && i.setText(i.value),
                c.html(e.elemTemp),
                c.addClass("layui-inline"),
                i.readonly || e.action();
        }),
        (v.prototype.setvalue = function (e) {
            var a = this,
                i = a.config;
            (i.value = e), a.render();
        }),
        (v.prototype.action = function () {
            var e = this,
                i = e.config,
                l = e.elemTemp,
                n = l.find("i").width();
            l.children("li").each(function (e) {
                var t = e + 1,
                    v = a(this);
                v.on("click", function (e) {
                    if (((i.value = t), i.half)) {
                        var o = e.pageX - a(this).offset().left;
                        o <= n / 2 && (i.value = i.value - 0.5);
                    }
                    i.text && l.next("span").text(i.value + "星"), i.choose && i.choose(i.value), i.setText && i.setText(i.value);
                }),
                    v.on("mousemove", function (e) {
                        if (
                            (l.find("i").each(function () {
                                a(this).addClass(o).removeClass(r);
                            }),
                            l.find("i:lt(" + t + ")").each(function () {
                                a(this).addClass(s).removeClass(f);
                            }),
                            i.half)
                        ) {
                            var c = e.pageX - a(this).offset().left;
                            c <= n / 2 && v.children("i").addClass(u).removeClass(s);
                        }
                    }),
                    v.on("mouseleave", function () {
                        l.find("i").each(function () {
                            a(this).addClass(o).removeClass(r);
                        }),
                            l.find("i:lt(" + Math.floor(i.value) + ")").each(function () {
                                a(this).addClass(s).removeClass(f);
                            }),
                            i.half &&
                                parseInt(i.value) !== i.value &&
                                l
                                    .children("li:eq(" + Math.floor(i.value) + ")")
                                    .children("i")
                                    .addClass(u)
                                    .removeClass(c);
                    });
            });
        }),
        (v.prototype.events = function () {
            var e = this;
            e.config;
        }),
        (i.render = function (e) {
            var a = new v(e);
            return l.call(a);
        }),
        e(n, i);
});
